package com.neu.question.mapper;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.neu.question.domain.ProjectInfo;
import com.neu.question.domain.UserInfo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.neu.question.service.UserInfoService;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
* @author DELL
* @description 针对表【user_info】的数据库操作Mapper
* @createDate 2022-10-31 19:09:11
* @Entity com.neu.question.domain.UserInfo
*/
@Mapper
public interface UserInfoMapper extends BaseMapper<UserInfo> {

    /**
     * 根据用户名查找用户id
     *
     * @param username
     * @return
     */
    String selectIdByName(String username);

    /**
     * 根据手机号查找用户信息
     *
     * @param userEntity
     * @return
     */
    List<UserInfo> getUserByPhone(UserInfo userEntity);

    /**
     * 根据用户名查找用户信息
     *
     * @param userEntity
     * @return
     */
    List<UserInfo> selectUserInfo(UserInfo userEntity);

    /**
     * 根据角色查询用户
     *
     * @param map
     * @return
     */
    List<Map<String, Object>> queryUserInfoByRole(Map<String, Object> map);

    /**
     * 判断用户名是否存在
     *
     * @param map
     * @return
     */
    int queryExistUser(Map<String, Object> map);

    /**
     * 判断手机号是否存在
     *
     * @param map
     * @return
     */
    int queryExistPhone(Map<String, Object> map);

    /**
     * 创建用户的基本信息
     *
     * @param map
     * @return
     */
    int addUserInfo(Map<String, Object> map);

    /**
     * 根据用户id判断项目是否存在
     *
     * @param projectEntity
     * @return
     */

    /**
     * 编辑用户的基本信息
     *
     * @param map
     * @return
     */
    int modifyUserInfo(Map<String, Object> map);

    /**
     * 根据id查询用户信息
     *
     * @param userEntity
     * @return
     */
    Map<String, Object> selectUserInfoById(UserInfo userEntity);

    /**
     * 查询用户的权限
     *
     * @param user
     * @return
     */
    String queryUserStatus(String user);

    /**
     * 修改用户状态
     *
     * @param map
     * @return
     */
    int modifyUserStatus(Map<String, Object> map);

    /**
     * 修改用户密码
     *
     * @param map
     * @return
     */
    int modifyUserpassword(Map<String, Object> map);

    /**
     * 删除用户信息
     *
     * @param userEntity
     * @return
     */
    int deteleUserInfoById(UserInfo userEntity);

    /**
     * 查询该手机号用户是否存在
     *
     * @param map
     * @return
     */
    int selectUserByPhone(Map<String, Object> map);

    int modifyUserInfoStatus(Map<String, Object> map);

    int queryUserCountByRole(Map<String, Object> map);

    /**
     * 根据用户添加密保问题
     * @param user
     * @param questionJson
     * @return
     */
    boolean insertQuestion(String user, String questionJson);

    /**
     * 返回用户密保问题
     * @param user
     * @return
     */
    String getUserMIBAO(String user);

}




